// 数据持久化存储
let addr = "RMUser/Info/"; // 手机存储的文件位置

export default {
	storage(className, data) {
		plus.io.requestFileSystem(
			// plus.io.PRIVATE_DOC, // 程序私有文档目录常量
			// plus.io.PUBLIC_DOWNLOADS, // 程序私有文档目录常量
			plus.io.PUBLIC_DOCUMENTS,
			(fs) => {
				// 创建或打开文件, fs.root是根目录操作对象,直接fs表示当前操作对象
				fs.root.getFile(
					addr + className, {
						create: true
					}, // 文件不存在则创建
					(fileEntry) => {
						// 文件在手机中的路径
						fileEntry.createWriter((writer) => {
							// 写入文件成功完成的回调函数
							writer.onwrite = (e) => {
								//console.log('写入成功');
							};
							// 向文件中写入数据
							writer.write(JSON.stringify(data));
							// 写入完成回调
							writer.onwriteend = function(res) {
								console.log("写入文件成功", res.target.fileName);
							};
							// 写入错误回调
							writer.onerror = function(err) {
								console.error("写入文件失败", err);
							};
						});
					},
					(e) => {
						console.log("getFile failed: ", e);
					}
				);
			},
			(e) => {
				console.log(e.message);
			}
		);
	},
	read(className) {
		let that = this;
		return new Promise((resolve, reject) => {
			try {
				plus.io.requestFileSystem(
					// plus.io.PRIVATE_DOC,
					// plus.io.PUBLIC_DOWNLOADS,
					plus.io.PUBLIC_DOCUMENTS,

					(fs) => {
						fs.root.getFile(
							addr + className, {
								create: false
							},
							(fileEntry) => {
								fileEntry.file(function(file) {
									// console.log("文件大小:" + file.size + "-- 文件名:" + file.name);
									//创建读取文件对象
									let fileReader = new plus.io.FileReader();
									//以文本格式读取文件数据内容
									fileReader.readAsText(file, "utf-8");
									//文件读取操作完成时的回调函数
									fileReader.onloadend = (evt) => {
										// console.log(evt.target.result);
										// console.log("evt.target.result");

										resolve(JSON.parse(evt.target.result));
										// sURL = JSON.parse(evt.target.result).URL;
									};

									// fileReader.onloadend = function(evt) {
									//     resolve(evt.target.result)
									// };
								});
							},
							(e) => {
								reject(e);
							}
						);
					},
					(e) => {
						reject(e);
						console.log(e.message);
					}
				);
			} catch (error) {
                console.log(error)
			}
		});
	},
	deletes() {
		plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, (fs) => {
			let a = fs.root.toURL();
			//删除目录不能指向文件名  只能指向文件夹
			console.log(a + "/" + addr);
			plus.io.resolveLocalFileSystemURL(a + "/" + addr, (entry) => {
				//读取这个目录对象
				var directoryReader = entry.createReader();
				//读取这个目录下的所有文件
				directoryReader.readEntries((entries) => {
					// console.log(entries.length);
					//如果有才操作
					console.log(entries, "entries");
					if (entries.length > 0) {
						//删除目录将会删除其下的所有文件及子目录 不能删除根目录，如果操作删除根目录
						//将会删除目录下的文件及子目录，不会删除根目录自身。 删除目录成功通过succesCB
						//回调返回，失败则通过errorCB返回。
						entry.removeRecursively(
							(entry) => {
								console.log("删除成功回调");
								//删除成功回调
								this.resultdata = [];
							},
							(e) => {
								//错误信息
								console.log(e.message + " ?!");
							}
						);
					}
				});
			});
		});
	},
};